import { defineStore } from 'pinia'
import { ref } from 'vue'

export interface UserInfo {
  id: number
  username: string
  email: string
  token: string
  avatar?: string
  roles: string[]
}

// 定义用户信息 store
export const useUserStore = defineStore(
  'user',
  () => {
    // 用户信息
    const userInfo = ref<UserInfo | null>(null)
    
    // 是否已登录
    const isLoggedIn = ref(false)
    
    // 最后登录时间
    const lastLoginTime = ref<number | null>(null)
    
    // 登录操作
    function login(user: UserInfo) {
      userInfo.value = user
      isLoggedIn.value = true
      lastLoginTime.value = Date.now()
    }
    
    // 登出操作
    function logout() {
      userInfo.value = null
      isLoggedIn.value = false
    }
    
    // 更新用户信息
    function updateUserInfo(user: Partial<UserInfo>) {
      if (userInfo.value) {
        userInfo.value = { ...userInfo.value, ...user }
      }
    }
    
    return {
      userInfo,
      isLoggedIn,
      lastLoginTime,
      login,
      logout,
      updateUserInfo
    }
  },
  {
    // 简化的持久化配置
    persist: {
      // 使用 localStorage
      storage: localStorage,
      
      // 自定义 key
      key: 'app-user'
    }
  }
) 